<!DOCTYPE html>

<!--

 @author gak@google.com (Gregory Kick)
-->

<html>
<!--
Copyright 2008 The Closure Library Authors. All Rights Reserved.

Use of this source code is governed by the Apache License, Version 2.0.
See the COPYING file for details.
-->
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Closure Unit Tests - goog.demos.editor.HelloWorld</title>
<script type="text/javascript" src="../../base.js"></script>
<script type="text/javascript" src="deps.js"></script>
<script type="text/javascript">
  goog.require('goog.dom');
  goog.require('goog.testing.jsunit');
  goog.require('goog.demos.editor.HelloWorld');
  goog.require('goog.testing.editor.TestHelper');
  goog.require('goog.testing.editor.FieldMock');
</script>
</head>

<body>

<div id="field">&nbsp;</div>

<script type="text/javascript">

var FIELD = goog.dom.getElement('field');
var plugin;
var fieldMock;
var testHelper = new goog.testing.editor.TestHelper(FIELD);

function setUp() {
  testHelper.setUpEditableElement();
  FIELD.focus();
  plugin = new goog.demos.editor.HelloWorld();
  fieldMock = new goog.testing.editor.FieldMock();
  plugin.registerFieldObject(fieldMock);
}

function tearDown() {
  testHelper.tearDownEditableElement();
}

function testIsSupportedCommand() {
  fieldMock.$replay();
  assertTrue('+helloWorld should be suported',
      plugin.isSupportedCommand('+helloWorld'));
  assertFalse('other commands should not be supported',
      plugin.isSupportedCommand('blah'));
  fieldMock.$verify();
}

function testExecCommandInternal() {
  fieldMock.$replay();
  var result = plugin.execCommandInternal(
      goog.demos.editor.HelloWorld.COMMAND.HELLO_WORLD);
  assertUndefined(result);
  var spans = FIELD.getElementsByTagName('span');
  assertEquals(1, spans.length);
  var helloWorldSpan = spans.item(0);
  assertEquals('Hello World!', goog.dom.getTextContent(helloWorldSpan));
  fieldMock.$verify();
}

</script>
</body>
</html>
